import { TestService } from './test.service'
import {
  Controller,
  Body,
  Param,
  Post,
  Get,
  Res,
  Headers,
  Header
} from '@nestjs/common'
import { Response } from 'express'

@Controller('test')
export class TestController {
  constructor(private readonly testService: TestService) {}

  @Post('session')
  testSession(@Body() req) {
    return this.testService.testSession(req)
  }

  @Get('code')
  getCode(@Param() req) {
    console.log(req)

    return this.testService.getCode(req)
  }

  // 测试 @Response 装饰器
  @Get('testResponseDecorator')
  getResponse(@Res() res: Response) {
    // 直接retutn 内容是不可用的，该接口会挂起
    // res.json({
    //   code: 1
    // })
    res.status(200).json({
      code: 1,
      text: '用express API直接返回'
    })
  }

  // nestjs 会序列化返回内容
  @Get('nestjsHandleResponse')
  getWrapData() {
    return {
      code: 1,
      text: 'nestjs 帮我们序列化了这个对象，并返回数据给客户端'
    }
  }

  @Get('getHeaders')
  getHeaders(@Headers() headers) {
    console.log(headers)
    return '获取headers'
  }

  @Get('set-headers')
  @Header('Cache-Control', 'none')
  @Header('age', '12')
  create() {
    return '通过装饰器设置Headers'
  }
}
